{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## **数据详情**\n",
    "\n",
    "    Date：The date of observation\n",
    "    Location：The common name of the location of the weather station\n",
    "    MinTemp：The minimum temperature in degrees celsius\n",
    "    MaxTemp：The maximum temperature in degrees celsius\n",
    "    Rainfall：The amount of rainfall recorded for the day in mm\n",
    "    Evaporation：The so-called Class A pan evaporation (mm) in the 24 hours to 9am\n",
    "    Sunshine：The number of hours of bright sunshine in the day.\n",
    "    WindGustDir：The direction of the strongest wind gust in the 24 hours to midnight\n",
    "    WindGustSpeed：The speed (km/h) of the strongest wind gust in the 24 hours to midnight\n",
    "    WindDir9am：Direction of the wind at 9am\n",
    "    WindDir3pm：Direction of the wind at 3pm\n",
    "    WindSpeed9am：Wind speed (km/hr) averaged over 10 minutes prior to 9am\n",
    "    WindSpeed3pm：Wind speed (km/hr) averaged over 10 minutes prior to 3pm\n",
    "    Humidity9am：Humidity (percent) at 9am\n",
    "    Humidity3pm：Humidity (percent) at 3pm\n",
    "    Pressure9am：Atmospheric pressure (hpa) reduced to mean sea level at 9am\n",
    "    Pressure3pm：Atmospheric pressure (hpa) reduced to mean sea level at 3pm\n",
    "    Cloud9am：Fraction of sky obscured by cloud at 9am. This is measured in \"oktas\", which are a unit of eigths. It records how many eigths of the sky are obscured by cloud. A 0 measure indicates completely clear sky whilst an 8 indicates that it is completely overcast.\n",
    "    Cloud3pm：Fraction of sky obscured by cloud (in \"oktas\": eighths) at 3pm. See Cload9am for a description of the values\n",
    "    Temp9am：Temperature (degrees C) at 9am\n",
    "    Temp3pm：Temperature (degrees C) at 3pm\n",
    "    RainTodayBoolean: 1 if precipitation (mm) in the 24 hours to 9am exceeds 1mm, otherwise 0\n",
    "    RISK_MM：The amount of next day rain in mm. Used to create response variable RainTomorrow. A kind of measure of the \"risk\".\n",
    "    RainTomorrow：The target variable. Did it rain tomorrow?\n",
    "\n",
    "**特征详情**：\n",
    "\n",
    "    Date：观察特征的那一天\n",
    "    Location：观察的城市\n",
    "    MinTemp：当天最低温度（摄氏度）\n",
    "    MaxTemp：当天最高温度（摄氏度）温度都是 string\n",
    "    Rainfall：当天的降雨量（单位是毫米mm）\n",
    "    Evaporation：一个凹地上面水的蒸发量（单位是毫米mm），24小时内到早上9点\n",
    "    Sunshine：一天中出太阳的小时数\n",
    "    WindGustDir：最强劲的那股风的风向，24小时内到午夜\n",
    "    WindGustSpeed：最强劲的那股风的风速（km/h），24小时内到午夜\n",
    "    WindDir9am：上午9点的风向\n",
    "    WindDir3pm：下午3点的风向\n",
    "    WindSpeed9am：上午9点之前的十分钟里的平均风速，即 8:50~9:00的平均风速，单位是（km/hr）\n",
    "    WindSpeed3pm：下午3点之前的十分钟里的平均风速，即 14:50~15:00的平均风速，单位是（km/hr）\n",
    "    Humidity9am：上午9点的湿度\n",
    "    Humidity3pm：下午3点的湿度\n",
    "    Pressure9am：上午9点的大气压强（hpa）\n",
    "    Pressure3pm：下午3点的大气压强\n",
    "    Cloud9am：上午9点天空中云的密度，取值是[0, 8]，以1位一个单位，0的话表示天空中几乎没云，8的话表示天空中几乎被云覆盖了\n",
    "    Cloud3pm：下午3点天空中云的密度\n",
    "    Temp9am：上午9点的温度（单位是摄氏度）\n",
    "    Temp3pm：下午3点的温度（单位是摄氏度）\n",
    "    RainTodayBoolean: 今天是否下雨\n",
    "    RISK_MM：明天下雨的风险值（应当是数据提供者创建的一个特征）\n",
    "    来自数据提供者的提醒：Note: You should exclude the variable Risk-MM when training a binary classification model. Not excluding it will leak the answers to your model and reduce its predictability. 就是建模的时候要删掉这个特征\n",
    "    RainTomorrow：标签"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset = pd.read_csv('./weatherAUS.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(142193, 24)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 142193 entries, 0 to 142192\n",
      "Data columns (total 24 columns):\n",
      "Date             142193 non-null object\n",
      "Location         142193 non-null object\n",
      "MinTemp          141556 non-null float64\n",
      "MaxTemp          141871 non-null float64\n",
      "Rainfall         140787 non-null float64\n",
      "Evaporation      81350 non-null float64\n",
      "Sunshine         74377 non-null float64\n",
      "WindGustDir      132863 non-null object\n",
      "WindGustSpeed    132923 non-null float64\n",
      "WindDir9am       132180 non-null object\n",
      "WindDir3pm       138415 non-null object\n",
      "WindSpeed9am     140845 non-null float64\n",
      "WindSpeed3pm     139563 non-null float64\n",
      "Humidity9am      140419 non-null float64\n",
      "Humidity3pm      138583 non-null float64\n",
      "Pressure9am      128179 non-null float64\n",
      "Pressure3pm      128212 non-null float64\n",
      "Cloud9am         88536 non-null float64\n",
      "Cloud3pm         85099 non-null float64\n",
      "Temp9am          141289 non-null float64\n",
      "Temp3pm          139467 non-null float64\n",
      "RainToday        140787 non-null object\n",
      "RISK_MM          142193 non-null float64\n",
      "RainTomorrow     142193 non-null object\n",
      "dtypes: float64(17), object(7)\n",
      "memory usage: 26.0+ MB\n"
     ]
    }
   ],
   "source": [
    "dataset.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Date             0.000000\n",
       "Location         0.000000\n",
       "MinTemp          0.004480\n",
       "MaxTemp          0.002265\n",
       "Rainfall         0.009888\n",
       "Evaporation      0.427890\n",
       "Sunshine         0.476929\n",
       "WindGustDir      0.065615\n",
       "WindGustSpeed    0.065193\n",
       "WindDir9am       0.070418\n",
       "WindDir3pm       0.026570\n",
       "WindSpeed9am     0.009480\n",
       "WindSpeed3pm     0.018496\n",
       "Humidity9am      0.012476\n",
       "Humidity3pm      0.025388\n",
       "Pressure9am      0.098556\n",
       "Pressure3pm      0.098324\n",
       "Cloud9am         0.377353\n",
       "Cloud3pm         0.401525\n",
       "Temp9am          0.006358\n",
       "Temp3pm          0.019171\n",
       "RainToday        0.009888\n",
       "RISK_MM          0.000000\n",
       "RainTomorrow     0.000000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.isnull().sum() / len(dataset)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### **单变量分析**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### **离散值**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "catgorical = [cat for cat in dataset.columns if dataset[cat].dtype == 'O']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Date',\n",
       " 'Location',\n",
       " 'WindGustDir',\n",
       " 'WindDir9am',\n",
       " 'WindDir3pm',\n",
       " 'RainToday',\n",
       " 'RainTomorrow']"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "catgorical"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Date\n",
      "3436\n",
      "\n",
      "Location\n",
      "49\n",
      "\n",
      "WindGustDir\n",
      "17\n",
      "\n",
      "WindDir9am\n",
      "17\n",
      "\n",
      "WindDir3pm\n",
      "17\n",
      "\n",
      "RainToday\n",
      "3\n",
      "\n",
      "RainTomorrow\n",
      "2\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for i in catgorical:\n",
    "    print(i)\n",
    "    print(len(dataset[i].unique()))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "date有非常多的唯一值，说明这个特征是high-cardinality\n",
    "\n",
    "分别提取出里面的年月日"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset['Date'] = pd.to_datetime(dataset['Date'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0        2008-12-01\n",
       "1        2008-12-02\n",
       "2        2008-12-03\n",
       "3        2008-12-04\n",
       "4        2008-12-05\n",
       "            ...    \n",
       "142188   2017-06-20\n",
       "142189   2017-06-21\n",
       "142190   2017-06-22\n",
       "142191   2017-06-23\n",
       "142192   2017-06-24\n",
       "Name: Date, Length: 142193, dtype: datetime64[ns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset['Date']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2007],\n",
       "      dtype=int64)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset['Date'].dt.year.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "year = dataset['Date'].dt.year\n",
    "month = dataset['Date'].dt.month\n",
    "day = dataset['Date'].dt.day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset.drop(labels=['Date'], axis=1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset['year'] = year\n",
    "dataset['month'] = month\n",
    "dataset['day'] = day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(142193, 26)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\anaconda_file\\lib\\site-packages\\pandas\\core\\indexing.py:1404: FutureWarning: \n",
      "Passing list-likes to .loc or [] with any missing label will raise\n",
      "KeyError in the future, you can use .reindex() as an alternative.\n",
      "\n",
      "See the documentation here:\n",
      "https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike\n",
      "  return self._getitem_tuple(key)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Date            1.000000\n",
       "Location        0.000000\n",
       "WindGustDir     0.065615\n",
       "WindDir9am      0.070418\n",
       "WindDir3pm      0.026570\n",
       "RainToday       0.009888\n",
       "RainTomorrow    0.000000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset.loc[:, catgorical].isnull().sum() / len(dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对于这些离散值来说，缺失的值的占比都比较少，所以都使用众数来填充即可\n",
    "\n",
    "dataset_ = dataset.copy()\n",
    "\n",
    "fill_list = ['WindGustDir', 'WindDir9am', 'WindDir3pm', 'RainToday']\n",
    "fill_dict = {key: dataset_[key].mode().values[0] for key in fill_list}\n",
    "fill_dict\n",
    "\n",
    "\n",
    "# 这种方法是不行的\n",
    "# for j in fill_list:\n",
    "#     dataset_[j].fillna(dataset_[j].mode(), inplace=True)\n",
    "\n",
    "\n",
    "dataset_.fillna(value=fill_dict, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Location        0\n",
       "WindGustDir     0\n",
       "WindDir9am      0\n",
       "WindDir3pm      0\n",
       "RainToday       0\n",
       "RainTomorrow    0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cat = [_ for _ in dataset_.columns if dataset[_].dtype=='O']\n",
    "dataset_.loc[:, cat].isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### **连续值**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['MinTemp',\n",
       " 'MaxTemp',\n",
       " 'Rainfall',\n",
       " 'Evaporation',\n",
       " 'Sunshine',\n",
       " 'WindGustSpeed',\n",
       " 'WindSpeed9am',\n",
       " 'WindSpeed3pm',\n",
       " 'Humidity9am',\n",
       " 'Humidity3pm',\n",
       " 'Pressure9am',\n",
       " 'Pressure3pm',\n",
       " 'Cloud9am',\n",
       " 'Cloud3pm',\n",
       " 'Temp9am',\n",
       " 'Temp3pm']"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numerical = [_ for _ in dataset_.columns if dataset[_].dtype != 'O']\n",
    "# 删去之前创建的 year, month, day\n",
    "# 因为数据集的提供者已经说了 RISK_MM 会影响模型，所以连着删去\n",
    "numerical = numerical[:-4]\n",
    "numerical"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MinTemp          0.004480\n",
       "MaxTemp          0.002265\n",
       "Rainfall         0.009888\n",
       "Evaporation      0.427890\n",
       "Sunshine         0.476929\n",
       "WindGustSpeed    0.065193\n",
       "WindSpeed9am     0.009480\n",
       "WindSpeed3pm     0.018496\n",
       "Humidity9am      0.012476\n",
       "Humidity3pm      0.025388\n",
       "Pressure9am      0.098556\n",
       "Pressure3pm      0.098324\n",
       "Cloud9am         0.377353\n",
       "Cloud3pm         0.401525\n",
       "Temp9am          0.006358\n",
       "Temp3pm          0.019171\n",
       "dtype: float64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numerical_features = dataset_.loc[:, numerical]\n",
    "\n",
    "numerical_features.isnull().sum() / numerical_features.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MinTemp</th>\n",
       "      <th>MaxTemp</th>\n",
       "      <th>Rainfall</th>\n",
       "      <th>Evaporation</th>\n",
       "      <th>Sunshine</th>\n",
       "      <th>WindGustSpeed</th>\n",
       "      <th>WindSpeed9am</th>\n",
       "      <th>WindSpeed3pm</th>\n",
       "      <th>Humidity9am</th>\n",
       "      <th>Humidity3pm</th>\n",
       "      <th>Pressure9am</th>\n",
       "      <th>Pressure3pm</th>\n",
       "      <th>Cloud9am</th>\n",
       "      <th>Cloud3pm</th>\n",
       "      <th>Temp9am</th>\n",
       "      <th>Temp3pm</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>141556.000000</td>\n",
       "      <td>141871.000000</td>\n",
       "      <td>140787.000000</td>\n",
       "      <td>81350.000000</td>\n",
       "      <td>74377.000000</td>\n",
       "      <td>132923.000000</td>\n",
       "      <td>140845.000000</td>\n",
       "      <td>139563.000000</td>\n",
       "      <td>140419.000000</td>\n",
       "      <td>138583.000000</td>\n",
       "      <td>128179.000000</td>\n",
       "      <td>128212.000000</td>\n",
       "      <td>88536.000000</td>\n",
       "      <td>85099.000000</td>\n",
       "      <td>141289.000000</td>\n",
       "      <td>139467.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>12.186400</td>\n",
       "      <td>23.226784</td>\n",
       "      <td>2.349974</td>\n",
       "      <td>5.469824</td>\n",
       "      <td>7.624853</td>\n",
       "      <td>39.984292</td>\n",
       "      <td>14.001988</td>\n",
       "      <td>18.637576</td>\n",
       "      <td>68.843810</td>\n",
       "      <td>51.482606</td>\n",
       "      <td>1017.653758</td>\n",
       "      <td>1015.258204</td>\n",
       "      <td>4.437189</td>\n",
       "      <td>4.503167</td>\n",
       "      <td>16.987509</td>\n",
       "      <td>21.687235</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>6.403283</td>\n",
       "      <td>7.117618</td>\n",
       "      <td>8.465173</td>\n",
       "      <td>4.188537</td>\n",
       "      <td>3.781525</td>\n",
       "      <td>13.588801</td>\n",
       "      <td>8.893337</td>\n",
       "      <td>8.803345</td>\n",
       "      <td>19.051293</td>\n",
       "      <td>20.797772</td>\n",
       "      <td>7.105476</td>\n",
       "      <td>7.036677</td>\n",
       "      <td>2.887016</td>\n",
       "      <td>2.720633</td>\n",
       "      <td>6.492838</td>\n",
       "      <td>6.937594</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-8.500000</td>\n",
       "      <td>-4.800000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>980.500000</td>\n",
       "      <td>977.100000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-7.200000</td>\n",
       "      <td>-5.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>7.600000</td>\n",
       "      <td>17.900000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.600000</td>\n",
       "      <td>4.900000</td>\n",
       "      <td>31.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>57.000000</td>\n",
       "      <td>37.000000</td>\n",
       "      <td>1012.900000</td>\n",
       "      <td>1010.400000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>12.300000</td>\n",
       "      <td>16.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>12.000000</td>\n",
       "      <td>22.600000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.800000</td>\n",
       "      <td>8.500000</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>70.000000</td>\n",
       "      <td>52.000000</td>\n",
       "      <td>1017.600000</td>\n",
       "      <td>1015.200000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>16.700000</td>\n",
       "      <td>21.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>16.800000</td>\n",
       "      <td>28.200000</td>\n",
       "      <td>0.800000</td>\n",
       "      <td>7.400000</td>\n",
       "      <td>10.600000</td>\n",
       "      <td>48.000000</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>83.000000</td>\n",
       "      <td>66.000000</td>\n",
       "      <td>1022.400000</td>\n",
       "      <td>1020.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>21.600000</td>\n",
       "      <td>26.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>33.900000</td>\n",
       "      <td>48.100000</td>\n",
       "      <td>371.000000</td>\n",
       "      <td>145.000000</td>\n",
       "      <td>14.500000</td>\n",
       "      <td>135.000000</td>\n",
       "      <td>130.000000</td>\n",
       "      <td>87.000000</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>1041.000000</td>\n",
       "      <td>1039.600000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>40.200000</td>\n",
       "      <td>46.700000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             MinTemp        MaxTemp       Rainfall   Evaporation  \\\n",
       "count  141556.000000  141871.000000  140787.000000  81350.000000   \n",
       "mean       12.186400      23.226784       2.349974      5.469824   \n",
       "std         6.403283       7.117618       8.465173      4.188537   \n",
       "min        -8.500000      -4.800000       0.000000      0.000000   \n",
       "25%         7.600000      17.900000       0.000000      2.600000   \n",
       "50%        12.000000      22.600000       0.000000      4.800000   \n",
       "75%        16.800000      28.200000       0.800000      7.400000   \n",
       "max        33.900000      48.100000     371.000000    145.000000   \n",
       "\n",
       "           Sunshine  WindGustSpeed   WindSpeed9am   WindSpeed3pm  \\\n",
       "count  74377.000000  132923.000000  140845.000000  139563.000000   \n",
       "mean       7.624853      39.984292      14.001988      18.637576   \n",
       "std        3.781525      13.588801       8.893337       8.803345   \n",
       "min        0.000000       6.000000       0.000000       0.000000   \n",
       "25%        4.900000      31.000000       7.000000      13.000000   \n",
       "50%        8.500000      39.000000      13.000000      19.000000   \n",
       "75%       10.600000      48.000000      19.000000      24.000000   \n",
       "max       14.500000     135.000000     130.000000      87.000000   \n",
       "\n",
       "         Humidity9am    Humidity3pm    Pressure9am    Pressure3pm  \\\n",
       "count  140419.000000  138583.000000  128179.000000  128212.000000   \n",
       "mean       68.843810      51.482606    1017.653758    1015.258204   \n",
       "std        19.051293      20.797772       7.105476       7.036677   \n",
       "min         0.000000       0.000000     980.500000     977.100000   \n",
       "25%        57.000000      37.000000    1012.900000    1010.400000   \n",
       "50%        70.000000      52.000000    1017.600000    1015.200000   \n",
       "75%        83.000000      66.000000    1022.400000    1020.000000   \n",
       "max       100.000000     100.000000    1041.000000    1039.600000   \n",
       "\n",
       "           Cloud9am      Cloud3pm        Temp9am        Temp3pm  \n",
       "count  88536.000000  85099.000000  141289.000000  139467.000000  \n",
       "mean       4.437189      4.503167      16.987509      21.687235  \n",
       "std        2.887016      2.720633       6.492838       6.937594  \n",
       "min        0.000000      0.000000      -7.200000      -5.400000  \n",
       "25%        1.000000      2.000000      12.300000      16.600000  \n",
       "50%        5.000000      5.000000      16.700000      21.100000  \n",
       "75%        7.000000      7.000000      21.600000      26.400000  \n",
       "max        9.000000      9.000000      40.200000      46.700000  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numerical_features.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**对比一下上四分位数和最大值，Rainfall、Evaporation、WindGustSpeed、WindSpeed9am、WindSpeed3pm**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x1080 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure, axes = plt.subplots(2, 3, figsize=(15, 15))\n",
    "\n",
    "sns.boxplot(\n",
    "    x='RainTomorrow', y='Rainfall',\n",
    "    data=dataset_, ax=axes[0, 0], palette=\"Set3\"\n",
    ")\n",
    "\n",
    "sns.boxplot(\n",
    "    x='RainTomorrow', y='Evaporation',\n",
    "    data=dataset_, ax=axes[0, 1], palette=\"Set3\"\n",
    ")\n",
    "\n",
    "sns.boxplot(\n",
    "    x='RainTomorrow', y='WindGustSpeed',\n",
    "    data=dataset_, ax=axes[1, 0], palette=\"Set3\"\n",
    ")\n",
    "\n",
    "sns.boxplot(\n",
    "    x='RainTomorrow', y='WindSpeed9am',\n",
    "    data=dataset_, ax=axes[1, 1], palette=\"Set3\"\n",
    ")\n",
    "\n",
    "sns.boxplot(\n",
    "    x='RainTomorrow', y='WindSpeed3pm',\n",
    "    data=dataset_, ax=axes[1, 2], palette=\"Set3\"\n",
    ")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**在箱线图中看到，对于这几个连续值，里面的异常值还是挺多的**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 2160x1080 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看连续值的分布情况\n",
    "\n",
    "figure, axes = plt.subplots(2, 3, figsize=(30, 15))\n",
    "\n",
    "sns.distplot(\n",
    "    a=dataset_['Rainfall'].dropna(),\n",
    "    ax=axes[0, 0]\n",
    ")\n",
    "\n",
    "sns.distplot(\n",
    "    a=dataset_['Evaporation'].dropna(),\n",
    "    ax=axes[0, 1]\n",
    ")\n",
    "\n",
    "sns.distplot(\n",
    "    a=dataset_['WindGustSpeed'].dropna(),\n",
    "    ax=axes[1, 0]\n",
    ")\n",
    "\n",
    "sns.distplot(\n",
    "    a=dataset_['WindSpeed9am'].dropna(),\n",
    "    ax=axes[1, 1]\n",
    ")\n",
    "\n",
    "sns.distplot(\n",
    "    a=dataset_['WindSpeed3pm'].dropna(),\n",
    "    ax=axes[1, 2]\n",
    ")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**对于这几个连续型特征，都出现比较明显的偏斜，使用 interquantile range 去寻找离群值** "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Rainfall outliers are values < -2.4000000000000004 or > 3.2\n",
      "the number of upper outlier 20462\n",
      "the number of lower outlier 0\n",
      "\n",
      "Evaporation outliers are values < -11.800000000000002 or > 21.800000000000004\n",
      "the number of upper outlier 471\n",
      "the number of lower outlier 0\n",
      "\n",
      "WindGustSpeed outliers are values < -20.0 or > 99.0\n",
      "the number of upper outlier 150\n",
      "the number of lower outlier 0\n",
      "\n",
      "WindSpeed9am outliers are values < -29.0 or > 55.0\n",
      "the number of upper outlier 107\n",
      "the number of lower outlier 0\n",
      "\n",
      "WindSpeed3pm outliers are values < -20.0 or > 57.0\n",
      "the number of upper outlier 81\n",
      "the number of lower outlier 0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "_list = ['Rainfall','Evaporation','WindGustSpeed','WindSpeed9am','WindSpeed3pm']\n",
    "\n",
    "def find_outliers(df, feature):\n",
    "    IQR = df[feature].quantile(0.75) - df[feature].quantile(0.25)\n",
    "    Lower_fence = df[feature].quantile(0.25) - (IQR * 3)\n",
    "    Upper_fence = df[feature].quantile(0.75) + (IQR * 3)\n",
    "    print('{feature} outliers are values < {lowerboundary} or > {upperboundary}'\\\n",
    "          .format(feature=feature, lowerboundary=Lower_fence, upperboundary=Upper_fence))\n",
    "    out_of_middan = (df[feature] < Lower_fence).sum()\n",
    "    out_of_top = (df[feature] > Upper_fence).sum()\n",
    "    print(f'the number of upper outlier {out_of_top}')\n",
    "    print(f'the number of lower outlier {out_of_middan}')\n",
    "    \n",
    "    \n",
    "for feature in _list:\n",
    "    find_outliers(dataset_, feature)\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**对于 Rainfall 这个特征而言，Australia 的情况应该是，一下雨就降雨量很大的那种，所以不打算砍掉 Rainfall 的 上四分位数 + 3*IQR 以上的值，其他的4个特征全部砍掉这些异常值**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 先进行中位数填充缺失的连续值，在进行异常值的处理\n",
    "\n",
    "# 当数据集中有离群值的时候，应当使用中位数进行填充\n",
    "'''\n",
    "进行缺失值填充的时候要注意的点是：\n",
    "要进行填充的值的计算，一定是要使用训练集计算出来的，这样才能减少过拟合。\n",
    "\n",
    "使用训练集计算出来的中位数对训练集和测试集的对应特征进行填充\n",
    "'''\n",
    "def fill_max(feature):\n",
    "    pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset_.drop(columns=['RISK_MM'], inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(142193, 25)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset_.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = dataset_.drop(columns=['RainTomorrow'])\n",
    "y = dataset_['RainTomorrow']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((113754, 24), (28439, 24))"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n",
    "\n",
    "# train_test_split 进行训练集和测试集的分配之后，X_train 等都是 dataframe\n",
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\anaconda_file\\lib\\site-packages\\pandas\\core\\generic.py:6288: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  self._update_inplace(new_data)\n"
     ]
    }
   ],
   "source": [
    "# 计算训练集的中位数，用这个中位数填充\n",
    "\n",
    "for df1 in (X_train, X_test):\n",
    "    for j in numerical:\n",
    "        col_median = X_train[j].median()\n",
    "        df1[j].fillna(col_median, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(Location         0\n",
       " MinTemp          0\n",
       " MaxTemp          0\n",
       " Rainfall         0\n",
       " Evaporation      0\n",
       " Sunshine         0\n",
       " WindGustDir      0\n",
       " WindGustSpeed    0\n",
       " WindDir9am       0\n",
       " WindDir3pm       0\n",
       " WindSpeed9am     0\n",
       " WindSpeed3pm     0\n",
       " Humidity9am      0\n",
       " Humidity3pm      0\n",
       " Pressure9am      0\n",
       " Pressure3pm      0\n",
       " Cloud9am         0\n",
       " Cloud3pm         0\n",
       " Temp9am          0\n",
       " Temp3pm          0\n",
       " RainToday        0\n",
       " year             0\n",
       " month            0\n",
       " day              0\n",
       " dtype: int64, Location         0\n",
       " MinTemp          0\n",
       " MaxTemp          0\n",
       " Rainfall         0\n",
       " Evaporation      0\n",
       " Sunshine         0\n",
       " WindGustDir      0\n",
       " WindGustSpeed    0\n",
       " WindDir9am       0\n",
       " WindDir3pm       0\n",
       " WindSpeed9am     0\n",
       " WindSpeed3pm     0\n",
       " Humidity9am      0\n",
       " Humidity3pm      0\n",
       " Pressure9am      0\n",
       " Pressure3pm      0\n",
       " Cloud9am         0\n",
       " Cloud3pm         0\n",
       " Temp9am          0\n",
       " Temp3pm          0\n",
       " RainToday        0\n",
       " year             0\n",
       " month            0\n",
       " day              0\n",
       " dtype: int64)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.isnull().sum(), X_test.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\anaconda_file\\lib\\site-packages\\ipykernel_launcher.py:33: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n"
     ]
    }
   ],
   "source": [
    "# 处理除了 Rainfall 之外的连续值的超出 上四分位数 + 3*IQR 的离群值进行修改\n",
    "# 前面可以看到小于 下四分位数 - 3*IQR 的值是没有的 \n",
    "\n",
    "\n",
    "def process_outliers(df3, Top, feature_):\n",
    "    return np.where(df3[feature_] > Top, Top, df3[feature_])\n",
    "\n",
    "'''threshold\n",
    "Evaporation\n",
    "\n",
    "21.800000000000004\n",
    "\n",
    "WindGustSpeed\n",
    "\n",
    "99.0\n",
    "\n",
    "WindSpeed9am\n",
    "\n",
    "55.0\n",
    "\n",
    "WindSpeed3pm\n",
    "\n",
    "57.0\n",
    "'''\n",
    "\n",
    "\n",
    "threshold_dict = {'Evaporation': 21.8, 'WindGustSpeed': 99.0, 'WindSpeed9am': 55.0, 'WindSpeed3pm': 57.0}\n",
    "_list = ['Evaporation', 'WindGustSpeed', 'WindSpeed9am', 'WindSpeed3pm']\n",
    "\n",
    "for df3 in (X_train, X_test):\n",
    "    for feature in _list:\n",
    "        top = threshold_dict.get(feature)\n",
    "        df3[feature] = process_outliers(df3, top, feature)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(Evaporation      21.8\n",
       " WindGustSpeed    99.0\n",
       " WindSpeed9am     55.0\n",
       " WindSpeed3pm     57.0\n",
       " dtype: float64, Evaporation      21.8\n",
       " WindGustSpeed    99.0\n",
       " WindSpeed9am     55.0\n",
       " WindSpeed3pm     57.0\n",
       " dtype: float64)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train[_list].max(), X_test[_list].max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Canberra            2717\n",
      "Sydney              2671\n",
      "Hobart              2593\n",
      "Darwin              2560\n",
      "Brisbane            2550\n",
      "Perth               2548\n",
      "Ballarat            2448\n",
      "Adelaide            2446\n",
      "MountGambier        2434\n",
      "Sale                2420\n",
      "Watsonia            2420\n",
      "MelbourneAirport    2415\n",
      "Nuriootpa           2413\n",
      "Bendigo             2412\n",
      "PerthAirport        2412\n",
      "AliceSprings        2411\n",
      "Woomera             2410\n",
      "Cobar               2408\n",
      "SydneyAirport       2407\n",
      "Launceston          2404\n",
      "WaggaWagga          2403\n",
      "Tuggeranong         2402\n",
      "Albury              2393\n",
      "Townsville          2389\n",
      "Wollongong          2385\n",
      "Portland            2384\n",
      "Albany              2382\n",
      "BadgerysCreek       2381\n",
      "NorfolkIsland       2380\n",
      "Penrith             2379\n",
      "Newcastle           2378\n",
      "CoffsHarbour        2377\n",
      "Cairns              2372\n",
      "Mildura             2369\n",
      "Dartmoor            2358\n",
      "Witchcliffe         2356\n",
      "GoldCoast           2346\n",
      "NorahHead           2344\n",
      "Richmond            2340\n",
      "SalmonGums          2338\n",
      "MountGinini         2323\n",
      "Moree               2300\n",
      "Walpole             2256\n",
      "PearceRAAF          2225\n",
      "Williamtown         2022\n",
      "Melbourne           1926\n",
      "Nhil                1282\n",
      "Uluru               1238\n",
      "Katherine           1227\n",
      "Name: Location, dtype: int64\n",
      "W      15350\n",
      "SE      7463\n",
      "E       7255\n",
      "N       7211\n",
      "SSE     7197\n",
      "S       7172\n",
      "WSW     7164\n",
      "SW      7028\n",
      "SSW     6888\n",
      "WNW     6427\n",
      "ENE     6360\n",
      "NW      6351\n",
      "ESE     5797\n",
      "NE      5674\n",
      "NNW     5251\n",
      "NNE     5166\n",
      "Name: WindGustDir, dtype: int64\n",
      "N      17112\n",
      "SE      7286\n",
      "E       7213\n",
      "SSE     7107\n",
      "NW      6904\n",
      "S       6771\n",
      "SW      6608\n",
      "W       6557\n",
      "NNE     6326\n",
      "NNW     6294\n",
      "ENE     6214\n",
      "NE      6073\n",
      "SSW     6034\n",
      "ESE     6034\n",
      "WNW     5755\n",
      "WSW     5466\n",
      "Name: WindDir9am, dtype: int64\n",
      "SE     11540\n",
      "W       7967\n",
      "S       7646\n",
      "WSW     7469\n",
      "SW      7373\n",
      "SSE     7275\n",
      "N       6988\n",
      "WNW     6913\n",
      "NW      6732\n",
      "ESE     6722\n",
      "E       6669\n",
      "NE      6524\n",
      "SSW     6371\n",
      "ENE     6226\n",
      "NNW     6203\n",
      "NNE     5136\n",
      "Name: WindDir3pm, dtype: int64\n",
      "No     88530\n",
      "Yes    25224\n",
      "Name: RainToday, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "# 对离散值进行独热编码\n",
    "\n",
    "catgorical = [\n",
    "    'Location',\n",
    " 'WindGustDir',\n",
    " 'WindDir9am',\n",
    " 'WindDir3pm',\n",
    " 'RainToday',\n",
    "]\n",
    "\n",
    "for i in catgorical:\n",
    "    print(X_train.loc[:, i].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = X_train.replace({'No': 0, 'Yes': 1})\n",
    "X_test = X_test.replace({'No': 0, 'Yes': 1})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((113754, 113), (28439, 113))"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_temp = X_train.copy()\n",
    "X_test_temp = X_test.copy()\n",
    "\n",
    "X_train_temp = pd.get_dummies(X_train_temp, columns=catgorical, drop_first=True)\n",
    "X_test_temp = pd.get_dummies(X_test_temp, columns=catgorical, drop_first=True)\n",
    "\n",
    "X_train_temp.shape, X_test_temp.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MinTemp</th>\n",
       "      <th>MaxTemp</th>\n",
       "      <th>Rainfall</th>\n",
       "      <th>Evaporation</th>\n",
       "      <th>Sunshine</th>\n",
       "      <th>WindGustSpeed</th>\n",
       "      <th>WindSpeed9am</th>\n",
       "      <th>WindSpeed3pm</th>\n",
       "      <th>Humidity9am</th>\n",
       "      <th>Humidity3pm</th>\n",
       "      <th>...</th>\n",
       "      <th>WindDir3pm_NW</th>\n",
       "      <th>WindDir3pm_S</th>\n",
       "      <th>WindDir3pm_SE</th>\n",
       "      <th>WindDir3pm_SSE</th>\n",
       "      <th>WindDir3pm_SSW</th>\n",
       "      <th>WindDir3pm_SW</th>\n",
       "      <th>WindDir3pm_W</th>\n",
       "      <th>WindDir3pm_WNW</th>\n",
       "      <th>WindDir3pm_WSW</th>\n",
       "      <th>RainToday_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>136356</th>\n",
       "      <td>25.7</td>\n",
       "      <td>32.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.2</td>\n",
       "      <td>8.9</td>\n",
       "      <td>37.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>77.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7859</th>\n",
       "      <td>4.8</td>\n",
       "      <td>16.8</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>8.5</td>\n",
       "      <td>57.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50687</th>\n",
       "      <td>3.8</td>\n",
       "      <td>21.2</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>22.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>73.0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98843</th>\n",
       "      <td>12.1</td>\n",
       "      <td>19.2</td>\n",
       "      <td>7.6</td>\n",
       "      <td>1.6</td>\n",
       "      <td>5.3</td>\n",
       "      <td>31.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5568</th>\n",
       "      <td>8.4</td>\n",
       "      <td>20.1</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>20.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>93.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>65680</th>\n",
       "      <td>15.2</td>\n",
       "      <td>22.1</td>\n",
       "      <td>8.4</td>\n",
       "      <td>2.2</td>\n",
       "      <td>5.9</td>\n",
       "      <td>46.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>83.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77586</th>\n",
       "      <td>16.0</td>\n",
       "      <td>17.3</td>\n",
       "      <td>17.2</td>\n",
       "      <td>1.8</td>\n",
       "      <td>0.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27323</th>\n",
       "      <td>16.4</td>\n",
       "      <td>30.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>8.5</td>\n",
       "      <td>39.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>84.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>140868</th>\n",
       "      <td>7.6</td>\n",
       "      <td>34.2</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>61.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>37.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2389</th>\n",
       "      <td>10.2</td>\n",
       "      <td>23.1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>17.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>137377</th>\n",
       "      <td>18.2</td>\n",
       "      <td>30.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>9.8</td>\n",
       "      <td>28.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21732</th>\n",
       "      <td>20.8</td>\n",
       "      <td>26.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>39.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17702</th>\n",
       "      <td>19.8</td>\n",
       "      <td>26.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>52.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>78.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>127783</th>\n",
       "      <td>6.6</td>\n",
       "      <td>13.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.6</td>\n",
       "      <td>4.4</td>\n",
       "      <td>33.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>81.0</td>\n",
       "      <td>72.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52545</th>\n",
       "      <td>4.9</td>\n",
       "      <td>7.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>54.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>99.0</td>\n",
       "      <td>98.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3935</th>\n",
       "      <td>5.6</td>\n",
       "      <td>24.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>30.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>43.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>116232</th>\n",
       "      <td>9.7</td>\n",
       "      <td>19.2</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.1</td>\n",
       "      <td>39.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>54.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57932</th>\n",
       "      <td>2.9</td>\n",
       "      <td>16.1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>35.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>73.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9181</th>\n",
       "      <td>9.1</td>\n",
       "      <td>25.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.2</td>\n",
       "      <td>11.1</td>\n",
       "      <td>56.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>41.0</td>\n",
       "      <td>37.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98686</th>\n",
       "      <td>12.9</td>\n",
       "      <td>17.2</td>\n",
       "      <td>2.4</td>\n",
       "      <td>5.6</td>\n",
       "      <td>8.9</td>\n",
       "      <td>56.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>57.0</td>\n",
       "      <td>76.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>63069</th>\n",
       "      <td>12.7</td>\n",
       "      <td>19.6</td>\n",
       "      <td>9.4</td>\n",
       "      <td>4.6</td>\n",
       "      <td>10.3</td>\n",
       "      <td>52.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>33.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>110140</th>\n",
       "      <td>13.8</td>\n",
       "      <td>28.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>28.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22300</th>\n",
       "      <td>15.8</td>\n",
       "      <td>21.1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.6</td>\n",
       "      <td>11.0</td>\n",
       "      <td>39.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>62.0</td>\n",
       "      <td>63.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>102873</th>\n",
       "      <td>14.6</td>\n",
       "      <td>21.1</td>\n",
       "      <td>0.5</td>\n",
       "      <td>5.1</td>\n",
       "      <td>6.6</td>\n",
       "      <td>61.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>31.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75987</th>\n",
       "      <td>11.5</td>\n",
       "      <td>17.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.6</td>\n",
       "      <td>8.8</td>\n",
       "      <td>63.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>74.0</td>\n",
       "      <td>39.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>131052</th>\n",
       "      <td>9.6</td>\n",
       "      <td>21.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>31.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27612</th>\n",
       "      <td>19.1</td>\n",
       "      <td>28.2</td>\n",
       "      <td>0.4</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>30.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80027</th>\n",
       "      <td>7.5</td>\n",
       "      <td>16.8</td>\n",
       "      <td>0.8</td>\n",
       "      <td>1.4</td>\n",
       "      <td>6.4</td>\n",
       "      <td>30.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>91.0</td>\n",
       "      <td>71.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55688</th>\n",
       "      <td>2.0</td>\n",
       "      <td>17.6</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>39.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>125728</th>\n",
       "      <td>14.6</td>\n",
       "      <td>17.2</td>\n",
       "      <td>11.6</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>48.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>96.0</td>\n",
       "      <td>81.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32026</th>\n",
       "      <td>14.7</td>\n",
       "      <td>22.4</td>\n",
       "      <td>0.4</td>\n",
       "      <td>5.2</td>\n",
       "      <td>6.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1213</th>\n",
       "      <td>6.2</td>\n",
       "      <td>19.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>33.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>93.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91135</th>\n",
       "      <td>21.9</td>\n",
       "      <td>29.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>11.1</td>\n",
       "      <td>46.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>31.0</td>\n",
       "      <td>54.0</td>\n",
       "      <td>43.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53659</th>\n",
       "      <td>1.7</td>\n",
       "      <td>8.2</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>26.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3811</th>\n",
       "      <td>5.1</td>\n",
       "      <td>21.3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>26.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>109027</th>\n",
       "      <td>16.4</td>\n",
       "      <td>29.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>56.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>78.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>134208</th>\n",
       "      <td>2.1</td>\n",
       "      <td>19.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>10.7</td>\n",
       "      <td>43.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71190</th>\n",
       "      <td>16.9</td>\n",
       "      <td>32.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>48.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>133462</th>\n",
       "      <td>3.7</td>\n",
       "      <td>18.2</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>9.9</td>\n",
       "      <td>37.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71534</th>\n",
       "      <td>12.7</td>\n",
       "      <td>38.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>33.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>110553</th>\n",
       "      <td>11.1</td>\n",
       "      <td>15.3</td>\n",
       "      <td>7.4</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>44.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>74.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46762</th>\n",
       "      <td>7.2</td>\n",
       "      <td>15.2</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>50.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>33.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49609</th>\n",
       "      <td>13.4</td>\n",
       "      <td>19.8</td>\n",
       "      <td>7.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>57.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>48.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56331</th>\n",
       "      <td>7.9</td>\n",
       "      <td>11.8</td>\n",
       "      <td>2.6</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>48.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>96.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>125994</th>\n",
       "      <td>8.6</td>\n",
       "      <td>14.5</td>\n",
       "      <td>21.8</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>46.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6282</th>\n",
       "      <td>15.5</td>\n",
       "      <td>25.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>10.4</td>\n",
       "      <td>8.5</td>\n",
       "      <td>48.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>136648</th>\n",
       "      <td>21.5</td>\n",
       "      <td>32.6</td>\n",
       "      <td>0.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>8.9</td>\n",
       "      <td>43.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>48.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60946</th>\n",
       "      <td>8.2</td>\n",
       "      <td>15.0</td>\n",
       "      <td>27.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>74.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>63.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58224</th>\n",
       "      <td>7.2</td>\n",
       "      <td>18.4</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>8.5</td>\n",
       "      <td>22.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>42.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44015</th>\n",
       "      <td>8.9</td>\n",
       "      <td>16.8</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>37.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>37.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>128650</th>\n",
       "      <td>12.7</td>\n",
       "      <td>20.9</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4.0</td>\n",
       "      <td>8.7</td>\n",
       "      <td>59.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9926</th>\n",
       "      <td>15.7</td>\n",
       "      <td>23.7</td>\n",
       "      <td>6.6</td>\n",
       "      <td>1.6</td>\n",
       "      <td>4.7</td>\n",
       "      <td>26.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>78.0</td>\n",
       "      <td>64.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3785</th>\n",
       "      <td>13.1</td>\n",
       "      <td>26.7</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>52.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>28.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55314</th>\n",
       "      <td>5.5</td>\n",
       "      <td>21.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>22.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>99.0</td>\n",
       "      <td>48.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80450</th>\n",
       "      <td>5.7</td>\n",
       "      <td>32.9</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.4</td>\n",
       "      <td>13.2</td>\n",
       "      <td>31.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>103344</th>\n",
       "      <td>16.3</td>\n",
       "      <td>29.3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>19.2</td>\n",
       "      <td>13.4</td>\n",
       "      <td>59.0</td>\n",
       "      <td>37.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>43.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89419</th>\n",
       "      <td>13.7</td>\n",
       "      <td>19.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.8</td>\n",
       "      <td>8.5</td>\n",
       "      <td>46.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>92.0</td>\n",
       "      <td>99.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>63947</th>\n",
       "      <td>7.1</td>\n",
       "      <td>15.9</td>\n",
       "      <td>22.4</td>\n",
       "      <td>2.4</td>\n",
       "      <td>3.2</td>\n",
       "      <td>43.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58267</th>\n",
       "      <td>9.5</td>\n",
       "      <td>11.2</td>\n",
       "      <td>10.4</td>\n",
       "      <td>1.4</td>\n",
       "      <td>8.5</td>\n",
       "      <td>31.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>96.0</td>\n",
       "      <td>98.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>82946</th>\n",
       "      <td>18.8</td>\n",
       "      <td>25.0</td>\n",
       "      <td>44.4</td>\n",
       "      <td>3.6</td>\n",
       "      <td>0.2</td>\n",
       "      <td>43.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>90.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>113754 rows × 113 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        MinTemp  MaxTemp  Rainfall  Evaporation  Sunshine  WindGustSpeed  \\\n",
       "136356     25.7     32.4       0.0          6.2       8.9           37.0   \n",
       "7859        4.8     16.8       0.0          5.0       8.5           57.0   \n",
       "50687       3.8     21.2       0.0          4.8       8.5           22.0   \n",
       "98843      12.1     19.2       7.6          1.6       5.3           31.0   \n",
       "5568        8.4     20.1       0.2          4.8       8.5           20.0   \n",
       "...         ...      ...       ...          ...       ...            ...   \n",
       "103344     16.3     29.3       0.0         19.2      13.4           59.0   \n",
       "89419      13.7     19.0       0.0          4.8       8.5           46.0   \n",
       "63947       7.1     15.9      22.4          2.4       3.2           43.0   \n",
       "58267       9.5     11.2      10.4          1.4       8.5           31.0   \n",
       "82946      18.8     25.0      44.4          3.6       0.2           43.0   \n",
       "\n",
       "        WindSpeed9am  WindSpeed3pm  Humidity9am  Humidity3pm  ...  \\\n",
       "136356          19.0          17.0         77.0         56.0  ...   \n",
       "7859            20.0          30.0         25.0         18.0  ...   \n",
       "50687            4.0           9.0         73.0         32.0  ...   \n",
       "98843           15.0          20.0        100.0         69.0  ...   \n",
       "5568             6.0           4.0         93.0         52.0  ...   \n",
       "...              ...           ...          ...          ...  ...   \n",
       "103344          37.0          30.0         43.0         21.0  ...   \n",
       "89419           20.0          15.0         92.0         99.0  ...   \n",
       "63947           19.0          20.0         82.0         67.0  ...   \n",
       "58267           19.0          13.0         96.0         98.0  ...   \n",
       "82946            9.0          13.0         90.0         75.0  ...   \n",
       "\n",
       "        WindDir3pm_NW  WindDir3pm_S  WindDir3pm_SE  WindDir3pm_SSE  \\\n",
       "136356              1             0              0               0   \n",
       "7859                0             0              0               0   \n",
       "50687               0             0              0               0   \n",
       "98843               0             0              0               0   \n",
       "5568                0             0              0               0   \n",
       "...               ...           ...            ...             ...   \n",
       "103344              0             1              0               0   \n",
       "89419               0             0              0               0   \n",
       "63947               0             0              0               0   \n",
       "58267               0             0              1               0   \n",
       "82946               0             0              0               0   \n",
       "\n",
       "        WindDir3pm_SSW  WindDir3pm_SW  WindDir3pm_W  WindDir3pm_WNW  \\\n",
       "136356               0              0             0               0   \n",
       "7859                 0              0             0               1   \n",
       "50687                0              0             0               0   \n",
       "98843                0              0             0               1   \n",
       "5568                 0              0             0               0   \n",
       "...                ...            ...           ...             ...   \n",
       "103344               0              0             0               0   \n",
       "89419                0              0             0               0   \n",
       "63947                0              0             0               0   \n",
       "58267                0              0             0               0   \n",
       "82946                0              0             0               0   \n",
       "\n",
       "        WindDir3pm_WSW  RainToday_1  \n",
       "136356               0            0  \n",
       "7859                 0            0  \n",
       "50687                0            0  \n",
       "98843                0            1  \n",
       "5568                 0            0  \n",
       "...                ...          ...  \n",
       "103344               0            0  \n",
       "89419                0            0  \n",
       "63947                1            1  \n",
       "58267                0            1  \n",
       "82946                0            1  \n",
       "\n",
       "[113754 rows x 113 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(142193, 113)\n",
      "(142193,)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "136356    Yes\n",
       "7859       No\n",
       "50687      No\n",
       "98843      No\n",
       "5568       No\n",
       "         ... \n",
       "67274      No\n",
       "107403    Yes\n",
       "69336      No\n",
       "48522      No\n",
       "4650      Yes\n",
       "Name: RainTomorrow, Length: 142193, dtype: object"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "X = pd.concat([X_train_temp, X_test_temp])\n",
    "y = pd.concat([y_train, y_test])\n",
    "print(X.shape)\n",
    "print(y.shape)\n",
    "\n",
    "\n",
    "scaler = StandardScaler()\n",
    "X_train_temp = scaler.fit_transform(X_train_temp)\n",
    "X_test_temp = scaler.fit_transform(X_test_temp)\n",
    "\n",
    "\n",
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### **建模方法**\n",
    "\n",
    "因选择使用逻辑回归，训练速度快\n",
    "\n",
    "    1.直接套模型\n",
    "    2.递归特征消除\n",
    "    3.嵌入法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\anaconda_file\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n",
      "  FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "                   intercept_scaling=1, l1_ratio=None, max_iter=100,\n",
       "                   multi_class='warn', n_jobs=None, penalty='l2',\n",
       "                   random_state=None, solver='warn', tol=0.0001, verbose=0,\n",
       "                   warm_start=False)"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "LR = LogisticRegression()\n",
    "LR.fit(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8482365765322268"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "LR.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 25.1 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.84331927, 0.84472574, 0.84739803, 0.84704641, 0.84535865,\n",
       "       0.84936709, 0.84893452, 0.8432269 , 0.84589956, 0.84414123])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "import warnings\n",
    "from sklearn.model_selection import cross_val_score\n",
    "\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "LR = LogisticRegression(n_jobs=-1)\n",
    "\n",
    "cross_val_score(LR, X, y, cv=10, n_jobs=-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8483218172547778"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "LR = LogisticRegression()\n",
    "LR.fit(X_train_temp, y_train)\n",
    "LR.score(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8482365765322268"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "LR.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用训练集的准确率和使用测试集的准确率差不多"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### **模型评估**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[20895,  1217],\n",
       "       [ 3099,  3228]], dtype=int64)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "y_pre_test = LR.predict(X_test_temp)\n",
    "\n",
    "cm = confusion_matrix(y_test, y_pre_test)\n",
    "cm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x24e0a40f240>"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cm_matrix = pd.DataFrame(cm, columns=['true', 'false'], index=['postive', 'negative'])\n",
    "plt.figure(figsize=(7,7))\n",
    "sns.heatmap(cm_matrix, annot=True, fmt='d', cmap='YlGnBu')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "          No       0.87      0.94      0.91     22112\n",
      "         Yes       0.73      0.51      0.60      6327\n",
      "\n",
      "    accuracy                           0.85     28439\n",
      "   macro avg       0.80      0.73      0.75     28439\n",
      "weighted avg       0.84      0.85      0.84     28439\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "\n",
    "print(classification_report(y_test, y_pre_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7262092238470191\n",
      "0.510194404931247\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import recall_score, precision_score\n",
    "\n",
    "y_test = np.where(y_test=='No', 0, 1)\n",
    "y_pre_test = np.where(y_pre_test=='No', 0, 1)\n",
    "\n",
    "print(precision_score(y_test, y_pre_test)) # 原来这个指标是可以设置 pos_label 的，这样即使是字符串的标签 'No' 'Yes' 也不用鸟了\n",
    "print(recall_score(y_test, y_pre_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5993316004455997"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "\n",
    "f1_score(y_test, y_pre_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8000000000000002"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "0.8*0.8*2/1.6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x24e07f3b1d0>]"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "\n",
    "fpr, tpr, threshold = roc_curve(y_test, y_pre_test)\n",
    "plt.plot(fpr, tpr, c='b')\n",
    "plt.plot([0,1], [0,1], 'k--')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "ROC_AUC = roc_auc_score(y_test, y_pre_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7275782082543355"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ROC_AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 17min 18s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "from sklearn.feature_selection import RFECV\n",
    "\n",
    "\n",
    "rfecv = RFECV(estimator=LR, step=1, cv=5, scoring='accuracy')\n",
    "\n",
    "rfecv = rfecv.fit(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(113754, 100)\n"
     ]
    }
   ],
   "source": [
    "X_train_rfecv = rfecv.transform(X_train_temp)\n",
    "print(X_train_rfecv.shape)\n",
    "LR.fit(X_train_rfecv, y_train)\n",
    "X_test_rfecv = rfecv.transform(X_test_temp)\n",
    "y_pred_rfecv = LR.predict(X_test_rfecv)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8479552726889131"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "y_test = np.where(y_test==0, 'No', 'Yes')\n",
    "LR.score(X_test_rfecv, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 9min 8s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise-deprecating',\n",
       "             estimator=LogisticRegression(C=1.0, class_weight=None, dual=False,\n",
       "                                          fit_intercept=True,\n",
       "                                          intercept_scaling=1, l1_ratio=None,\n",
       "                                          max_iter=100, multi_class='warn',\n",
       "                                          n_jobs=-1, penalty='l1',\n",
       "                                          random_state=None, solver='warn',\n",
       "                                          tol=0.0001, verbose=0,\n",
       "                                          warm_start=False),\n",
       "             iid='warn', n_jobs=None,\n",
       "             param_grid=[{'C': [50, 75, 100, 125, 150, 175, 200, 225, 250, 275,\n",
       "                                300, 325, 350, 375, 400, 425, 450, 475]}],\n",
       "             pre_dispatch='2*n_jobs', refit=True, return_train_score=False,\n",
       "             scoring='accuracy', verbose=0)"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "\n",
    "parameters = [\n",
    "              {'C':list(range(50, 500, 25))}\n",
    "               ]\n",
    "LR = LogisticRegression(penalty='l1', n_jobs=-1)\n",
    "\n",
    "\n",
    "grid_search = GridSearchCV(estimator = LR,  \n",
    "                           param_grid = parameters,\n",
    "                           scoring = 'accuracy',\n",
    "                           cv = 5,\n",
    "                           verbose=0)\n",
    "\n",
    "\n",
    "grid_search.fit(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.8479174358703869, {'C': 125})"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_search.best_score_, grid_search.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 3.6 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "# 嵌入法\n",
    "from sklearn.feature_selection import SelectFromModel\n",
    "\n",
    "X_embedded = SelectFromModel(grid_search.best_estimator_, norm_order=1).fit_transform(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "Found input variables with inconsistent numbers of samples: [113754, 142193]",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-73-a7fb7f0d4771>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcross_val_score\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgrid_search\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbest_estimator_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mX_embedded\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mcv\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\u001b[0m in \u001b[0;36mcross_val_score\u001b[1;34m(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, error_score)\u001b[0m\n\u001b[0;32m    389\u001b[0m                                 \u001b[0mfit_params\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfit_params\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    390\u001b[0m                                 \u001b[0mpre_dispatch\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mpre_dispatch\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 391\u001b[1;33m                                 error_score=error_score)\n\u001b[0m\u001b[0;32m    392\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mcv_results\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'test_score'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    393\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\u001b[0m in \u001b[0;36mcross_validate\u001b[1;34m(estimator, X, y, groups, scoring, cv, n_jobs, verbose, fit_params, pre_dispatch, return_train_score, return_estimator, error_score)\u001b[0m\n\u001b[0;32m    215\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    216\u001b[0m     \"\"\"\n\u001b[1;32m--> 217\u001b[1;33m     \u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mgroups\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mindexable\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mgroups\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    218\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    219\u001b[0m     \u001b[0mcv\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcheck_cv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcv\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mclassifier\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mis_classifier\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mestimator\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\utils\\validation.py\u001b[0m in \u001b[0;36mindexable\u001b[1;34m(*iterables)\u001b[0m\n\u001b[0;32m    228\u001b[0m         \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    229\u001b[0m             \u001b[0mresult\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0marray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 230\u001b[1;33m     \u001b[0mcheck_consistent_length\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    231\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    232\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\utils\\validation.py\u001b[0m in \u001b[0;36mcheck_consistent_length\u001b[1;34m(*arrays)\u001b[0m\n\u001b[0;32m    203\u001b[0m     \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0muniques\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    204\u001b[0m         raise ValueError(\"Found input variables with inconsistent numbers of\"\n\u001b[1;32m--> 205\u001b[1;33m                          \" samples: %r\" % [int(l) for l in lengths])\n\u001b[0m\u001b[0;32m    206\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    207\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: Found input variables with inconsistent numbers of samples: [113754, 142193]"
     ]
    }
   ],
   "source": [
    "cross_val_score(grid_search.best_estimator_, X_embedded, ,cv=10).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**查看模型的效果----通过模型预测的概率的分布**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [],
   "source": [
    "# LR.predict_proba(X_test) 可以获得对应的样本的预测值为 1 的概率\n",
    "\n",
    "LR = LogisticRegression(C=125)\n",
    "LR.fit(X_train_temp, y_train)\n",
    "y_predict_proba = LR.predict_proba(X_test_temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.79898701, 0.20101299],\n",
       "       [0.86553243, 0.13446757],\n",
       "       [0.77149679, 0.22850321],\n",
       "       ...,\n",
       "       [0.98964495, 0.01035505],\n",
       "       [0.83904762, 0.16095238],\n",
       "       [0.17714232, 0.82285768]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_predict_proba # 第0列和第一列分别为这个样本对应的标签为0和1的概率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x24e42f53cc0>"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set(style=\"whitegrid\")\n",
    "sns.distplot(a=y_predict_proba[:, 1], bins=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([13451.,  4906.,  2661.,  1638.,  1341.,  1073.,   908.,   809.,\n",
       "          838.,   814.]),\n",
       " array([8.40201955e-04, 1.00724269e-01, 2.00608337e-01, 3.00492404e-01,\n",
       "        4.00376471e-01, 5.00260538e-01, 6.00144606e-01, 7.00028673e-01,\n",
       "        7.99912740e-01, 8.99796807e-01, 9.99680875e-01]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(y_predict_proba[:, 1], bins=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x24e67ab34e0>"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.distplot(a=y_predict_proba[:, 0], bins=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    1.概率分布严重偏斜\n",
    "    2.可以发现对于标签为 1 的样本，大部分预测的概率都是小于0.5的，所以感觉置信度不太高"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**# todo 对于样本严重的不平衡问题，使用上采样的方法**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### **随机森林**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
       "                       max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
       "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "                       min_samples_leaf=1, min_samples_split=2,\n",
       "                       min_weight_fraction_leaf=0.0, n_estimators=200,\n",
       "                       n_jobs=None, oob_score=False, random_state=None,\n",
       "                       verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "rfc = RandomForestClassifier(n_estimators=200)\n",
    "rfc.fit(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.856886669714125"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rfc.score(X_test_temp, y_test) # 我吐了，调了那么久的LR，应该全部模型都跑一遍。。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**随机森林调参**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 17min 9s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "m_list = []\n",
    "\n",
    "for depth in range(5, 100, 4):\n",
    "    rfc = RandomForestClassifier(n_estimators=150, max_depth=depth)\n",
    "    rfc.fit(X_train_temp, y_train)\n",
    "    score = rfc.score(X_test_temp, y_test)\n",
    "    m_list.append(score)\n",
    "    \n",
    "plt.plot(m_list)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m_list.index(max(m_list))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.858328351911108"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m_list[14]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "score_list = list()\n",
    "\n",
    "for num in range(500, 1500, 100):\n",
    "    rfc = RandomForestClassifier(n_estimators=200, max_depth=14, max_leaf_nodes=num, n_jobs=-1)\n",
    "    rfc.fit(X_train_temp, y_train)\n",
    "    score = rfc.score(X_test_temp, y_test)\n",
    "    score_list.append(score)\n",
    "    \n",
    "plt.plot(x=score_list, y=score_list)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(list(range(500, 1500, 100)),score_list)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "# 显然预测的评分是被限制了，max_leaf_nodes还要提高\n",
    "del score_list\n",
    "score_list = []\n",
    "\n",
    "for k in range(1500, 2500, 100):\n",
    "    rfc = RandomForestClassifier(n_estimators=200, max_depth=14, max_leaf_nodes=k, n_jobs=-1)\n",
    "    rfc.fit(X_train_temp, y_train)\n",
    "    score = rfc.score(X_test_temp, y_test)\n",
    "    score_list.append(score)\n",
    "    \n",
    "    \n",
    "plt.plot(range(1500, 2500, 100), score_list)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 24.9 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.8518583635148915"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "rfc = RandomForestClassifier(n_estimators=200, max_depth=19, max_features=17, max_leaf_nodes=1100, n_jobs=-1)\n",
    "rfc.fit(X_train_temp, y_train)\n",
    "rfc.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.3202995885931292"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from imblearn.over_sampling import SMOTE\n",
    "\n",
    "# smote = SMOTE(ratio='minority')\n",
    "# X_train_f_sm, y_train_sm = smote.fit_sample(X_train_temp, y_train)\n",
    "# Ensure columns are homogeneous - imblearn recasts as numpy array\n",
    "# X_train_f_sm = pd.DataFrame(X_train_f_sm, columns=X_train_temp.columns)\n",
    "\n",
    "rfc = RandomForestClassifier(n_estimators=200)\n",
    "rfc.fit(X_train_f_sm, y_train_sm)\n",
    "rfc.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6483701958578009"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.naive_bayes import GaussianNB, MultinomialNB, ComplementNB\n",
    "\n",
    "gaussian_ = GaussianNB()\n",
    "gaussian_.fit(X_train_temp, y_train)\n",
    "gaussian_.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "Input X must be non-negative",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-121-fad855a6a26d>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mmut_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mMultinomialNB\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mmut_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train_temp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m \u001b[0mmut_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mscore\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_test_temp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_test\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\naive_bayes.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m    611\u001b[0m         self.feature_count_ = np.zeros((n_effective_classes, n_features),\n\u001b[0;32m    612\u001b[0m                                        dtype=np.float64)\n\u001b[1;32m--> 613\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_count\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mY\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    614\u001b[0m         \u001b[0malpha\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_check_alpha\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    615\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_update_feature_log_prob\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malpha\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\naive_bayes.py\u001b[0m in \u001b[0;36m_count\u001b[1;34m(self, X, Y)\u001b[0m\n\u001b[0;32m    718\u001b[0m         \u001b[1;34m\"\"\"Count and smooth feature occurrences.\"\"\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    719\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0many\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0missparse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 720\u001b[1;33m             \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Input X must be non-negative\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    721\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfeature_count_\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0msafe_sparse_dot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mY\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mT\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    722\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclass_count_\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0mY\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: Input X must be non-negative"
     ]
    }
   ],
   "source": [
    "mut_ = MultinomialNB()\n",
    "mut_.fit(X_train_temp, y_train)\n",
    "mut_.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "Input X must be non-negative",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-122-3a872690730c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mmut_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mComplementNB\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mmut_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train_temp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m \u001b[0mmut_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mscore\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_test_temp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_test\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\naive_bayes.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m    611\u001b[0m         self.feature_count_ = np.zeros((n_effective_classes, n_features),\n\u001b[0;32m    612\u001b[0m                                        dtype=np.float64)\n\u001b[1;32m--> 613\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_count\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mY\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    614\u001b[0m         \u001b[0malpha\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_check_alpha\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    615\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_update_feature_log_prob\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malpha\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\anaconda_file\\lib\\site-packages\\sklearn\\naive_bayes.py\u001b[0m in \u001b[0;36m_count\u001b[1;34m(self, X, Y)\u001b[0m\n\u001b[0;32m    816\u001b[0m         \u001b[1;34m\"\"\"Count feature occurrences.\"\"\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    817\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0many\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0missparse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 818\u001b[1;33m             \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Input X must be non-negative\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    819\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfeature_count_\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0msafe_sparse_dot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mY\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mT\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    820\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclass_count_\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0mY\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: Input X must be non-negative"
     ]
    }
   ],
   "source": [
    "mut_ = ComplementNB()\n",
    "mut_.fit(X_train_temp, y_train)\n",
    "mut_.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8482014135518127"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "LR = LogisticRegression(C=10,penalty='l1')\n",
    "LR.fit(X_train_temp, y_train)\n",
    "LR.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wall time: 2min 44s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "MLPClassifier(activation='relu', alpha=1e-05, batch_size='auto', beta_1=0.9,\n",
       "              beta_2=0.999, early_stopping=False, epsilon=1e-08,\n",
       "              hidden_layer_sizes=(50, 50, 50), learning_rate='constant',\n",
       "              learning_rate_init=0.001, max_iter=200, momentum=0.9,\n",
       "              n_iter_no_change=10, nesterovs_momentum=True, power_t=0.5,\n",
       "              random_state=1, shuffle=True, solver='lbfgs', tol=0.0001,\n",
       "              validation_fraction=0.1, verbose=False, warm_start=False)"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "from sklearn.neural_network import MLPClassifier\n",
    "\n",
    "clf = MLPClassifier(solver='lbfgs', alpha=1e-5,\n",
    "                        hidden_layer_sizes=(50, 50), random_state=1)\n",
    "\n",
    "clf.fit(X_train_temp, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8431731073525792"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.score(X_test_temp, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
